package org.nnxy.foodboot.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nnxy.foodboot.entity.UserBrowseHistory;

import java.util.List;

/**
 * 用户浏览历史Service接口
 */
public interface UserBrowseHistoryService extends IService<UserBrowseHistory> {
    
    /**
     * 添加浏览历史记录
     *
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @param browseDuration 浏览时长（秒）
     * @return 是否添加成功
     */
    boolean addBrowseHistory(Integer userId, Integer recipeId, Integer browseDuration);
    
    /**
     * 添加浏览历史记录并返回记录对象
     *
     * @param userId 用户ID
     * @param recipeId 食谱ID
     * @param browseDuration 浏览时长（秒）
     * @return 创建的浏览历史记录
     */
    UserBrowseHistory addBrowseHistoryWithReturn(Integer userId, Integer recipeId, Integer browseDuration);
    
    /**
     * 获取用户浏览历史列表
     *
     * @param userId 用户ID
     * @param limit 限制条数
     * @return 浏览历史列表
     */
    List<UserBrowseHistory> getUserBrowseHistoryList(Integer userId, int limit);
    
    /**
     * 分页获取用户浏览历史
     *
     * @param page 分页参数
     * @param userId 用户ID
     * @return 分页结果
     */
    Page<UserBrowseHistory> getUserBrowseHistoryPage(Page<UserBrowseHistory> page, Integer userId);
    
    /**
     * 删除指定浏览记录
     *
     * @param id 记录ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteUserBrowseHistory(Integer id, Integer userId);
    
    /**
     * 清空用户浏览历史
     *
     * @param userId 用户ID
     * @return 是否清空成功
     */
    boolean clearUserBrowseHistory(Integer userId);
    
    /**
     * 更新浏览时长
     *
     * @param id 记录ID
     * @param browseDuration 浏览时长（秒）
     * @return 是否更新成功
     */
    boolean updateBrowseDuration(Integer id, Integer browseDuration);
} 